Skip to content

Port OpenLDAP appliance to TurnKey 19 - #24

Open
lirazsiri wants to merge 7 commits into
masterfrom
wish/openldap-v19-trixie
Open

Port OpenLDAP appliance to TurnKey 19#24
lirazsiri wants to merge 7 commits into
masterfrom
wish/openldap-v19-trixie

Conversation

@lirazsiri

Copy link
Copy Markdown
Member

Summary

  • port the OpenLDAP appliance to TurnKey 19 on Debian Trixie
  • update application installation, configuration, and runtime integration for the supported Trixie stack
  • add executable v19 smoke coverage and retain the accepted migration evidence

Validation

  • passed the configured Trixie root build in the Docker-based TKLDev 19 harness
  • passed noninteractive firstboot and the primary application workflow
  • passed dependency provenance and updater checks recorded in docs/v19.0-testing.md
  • git diff --check origin/master...HEAD

Move the appliance release contract to v19 while retaining the Debian-packaged OpenLDAP, phpLDAPadmin, Lighttpd and PHP-FPM stack. Refresh the README to match the existing Debian phpLDAPadmin source, administrator DN, generated LDAPS certificates and actual Webmin module.

Add focused acceptance coverage for normal services, administrator LDAP and trusted LDAPS binds, the default directory structure, an add-search-delete entry round trip, the phpLDAPadmin HTTPS interface and signed Trixie updater candidates. Document the README crosswalk, Core inheritance and Docker boundary.

Verified with Bash and shell syntax checks, Python source compilation and git diff checks.
Debian Trixie's noninteractive slapd reconfiguration leaves the daemon stopped in the Fab chroot. The container stop helper previously let pgrep's no-process status abort the script under set -e before restart_slapd could start the newly configured service.

Treat the absent process as the existing helper's intended already-stopped state. This keeps normal live-container and systemd behavior unchanged while allowing the build-time initialization flow to continue.

Verified with Bash syntax and git diff checks; acceptance run 20260824t075354z-6354-9330 supplied the failing pgrep-after-reconfigure path.
Fab runs appliance configuration in a chroot that reports container virtualization. In that environment systemctl accepts the slapd start request but explicitly ignores it, so the following LDAP data load has no server to contact.

Use the already-supported slapd init script for the container start path. The manual stop workaround and normal non-container systemd path remain unchanged.

Verified the failure with the retained 20260824t080037z-1648-5973 build log and a direct chroot systemctl probe; bash syntax and whitespace checks pass.
The firstboot wrapper captured all output from the reinitialization script and discarded it. When an LDAP setup command failed, administrators received only a Python exception with no failing-operation evidence.

Run the script with inherited output while preserving the same arguments and checked exit-status contract. This does not alter successful OpenLDAP configuration behavior.

Verified Python compilation, shell syntax, and whitespace checks; acceptance run 20260824t080939z-4020-15323 demonstrates the previously opaque failure.
Trixie package reconfiguration can leave slapd with no running process. The container stop helper reached a bare return in that state, inherited the preceding false test status, and aborted under errexit before restart.

Return success explicitly when there is nothing to stop. This preserves the existing manual-stop behavior for a running daemon and allows the established init-script start to proceed.

Verified by the preserved output from acceptance run 20260824t082453z-5969-17072 plus shell syntax and whitespace checks.
Debian Trixie links slapd against OpenSSL 3. The legacy GnuTLS priority value normal is rejected when the TLS attributes are loaded, aborting OpenLDAP initialization with LDAP error 80.

Remove only the obsolete cipher override. Certificate, key, CA, and client verification configuration remain explicit, while cipher selection follows the maintained Debian/OpenSSL defaults.

A disposable Trixie slapd 2.6.10 probe accepted every other TLS attribute and reproduced error 80 only for olcTLSCipherSuite. Shell syntax, Python compilation, and whitespace checks pass.
Document the exact passing source and harness commits, retained artifact hashes, installed versions, updater result, and the README-defined LDAP, LDAPS, and management-interface evidence.

Also record the Trixie OpenSSL cipher migration finding and distinguish the known Docker test-path limitations from application behavior. No appliance behavior changed after the passing run.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant